package com.ddxz.middleground.master.service;

import com.ddxz.middleground.master.dto.MasterHeader;
import com.ddxz.middleground.master.dto.app.AppInfo;
import com.ddxz.middleground.master.dto.app.AppPage;
import com.ddxz.middleground.master.util.MasterData;
import com.ddxz.tool.web.dto.DdxzResponse;

/**
 * interface description
 *
 * @author 朱宗刚
 * @version 1.0.0
 * @date 2020/7/30
 */

public interface ApplicationService extends MasterData {
    /**
     * 获取应用清单
     *
     * @param header 请求头信息
     * @param page   分页检索参数
     * @return 应用清单
     */
    DdxzResponse getAppList(MasterHeader header, AppPage page);

    /**
     * 获取应用详情
     *
     * @param header 请求头信息
     * @param appId  应用标识
     * @return 应用详情
     */
    DdxzResponse getAppDetail(MasterHeader header, String appId);

    /**
     * 保存应用信息
     *
     * @param header  请求头信息
     * @param appInfo 应用信息
     * @return 将应用信息保存在数据库中
     */
    DdxzResponse appSave(MasterHeader header, AppInfo appInfo);

    /**
     * 删除应用信息，如果应用中包含有菜单则不允许删除
     *
     * @param header 请求头信息
     * @param appId  应用标识
     * @return 是否删除成功
     */
    DdxzResponse removeApp(MasterHeader header, String appId);
}
